﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Gacn.ControleAlunos.Library.Business;
using Gacn.ControleAlunos.Library.DataAccess;
using Gacn.ControleAlunos.Library.Entities;
using System.Text;

namespace Gacn.ControleAlunos.WebApplication
{
    public partial class AlterarDadosSimples : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if(ddlTurma.Items.Count == 1)
                InicializaDdlTurma();
            if (Request.QueryString.Count > 0)
                if (Request.QueryString["Resultado"].Equals("Sucesso"))
                    atualizadoComSucesso.Visible = true;
                else
                    atualizadoComSucesso.Visible = false;
        }

        private void InicializaDdlTurma()
        {
            List<TurmaEntity> turmas = TurmaBiz.GetAllTurmaEntity();
            foreach (TurmaEntity t in turmas)
                ddlTurma.Items.Add(new ListItem(t.CodTurma, t.ID.ToString()));
        }

        #region Pesquisar Alunos
        protected void Pesquisar_Click(object sender, EventArgs e)
        {
            try
            {
                if (!alunoCracha.Text.Equals(""))
                    PesquisaAlunosPorID();
                else if (!alunoNome.Text.Equals(""))
                    PesquisaAlunosPorNome();
                else if (!ddlTurma.SelectedIndex.Equals(0))
                    PesquisaAlunosPorTurma();
                else
                    PesquisarTodosOsAlunos();

                txtResultado.Visible = false;
            }
            catch (Exception ex)
            {
                StringBuilder sb = new StringBuilder();
                sb.AppendLine("Houve falha ao recuperar os dados. A pesquisa não foi realizada");
                sb.AppendLine("\n");
                sb.AppendLine(ex.Message);
                sb.AppendLine(ex.StackTrace);
                sb.AppendLine(ex.Data.ToString());

                txtResultado.Visible = true;
                txtResultado.Text = sb.ToString();
            }
        }

        private void PesquisarTodosOsAlunos()
        {
            List<AlunoDetalhadoEntity> alunos = AlunoBiz.GetAllAlunoDetalhado();
            gridAlunos.DataSource = alunos;
            gridAlunos.DataBind();
        }

        private void PesquisaAlunosPorTurma()
        {
            List<AlunoDetalhadoEntity> alunos = AlunoBiz.GetAllAlunoDetalhadoPorTurmaID(int.Parse(ddlTurma.SelectedValue));
            gridAlunos.DataSource = alunos;
            gridAlunos.DataBind();
        }

        private void PesquisaAlunosPorNome()
        {
            List<AlunoDetalhadoEntity> alunos = AlunoBiz.GetAllAlunoDetalhadoPorAlunoNome(alunoNome.Text);
            gridAlunos.DataSource = alunos;
            gridAlunos.DataBind();
        }

        private void PesquisaAlunosPorID()
        {
            AlunoDetalhadoEntity aluno = AlunoBiz.GetAlunoDetalhadoPorAlunoID(int.Parse(alunoCracha.Text)); 
            List<AlunoDetalhadoEntity> alunos = new List<AlunoDetalhadoEntity>();
            
            alunos.Add(aluno);
            gridAlunos.DataSource = alunos;
            gridAlunos.DataBind();
        }
        #endregion

        protected void gridAlunos_SelectedIndexChanged(object sender, EventArgs e)
        {
            Response.Redirect("/aluno/EditarAluno.aspx?AlunoID=" + ((System.Web.UI.WebControls.GridView)(sender)).SelectedDataKey.Value);
        }
    }
}